home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-9
-
-
- ╞UNCTION ╬AME: ┴┬╙16
- ╨URPOSE: 16 BIT ABSOLUTE VALUE.
- ├ALL ADDRESS: $├16╞
- ╔NPUT REQUIREMENTS:
- ╪ ╘HE ADDRESS OF THE 16 BIT INTEGER.
- ╧UTPUT:
- ╪ ╘HE ADDRESS A POSITIVE 16 BIT INTEGER.
-
- ─ESCRIPTION: ╘HIS ROUTINE IS ONE OF THE ╟┼╧╙ MATH ROUTINES. ╪
- POINTS TO A 16 BIT VALUE WHICH IF FOUND TO BE NEGATIVE, ╬┼╟16 IS
- CALLED TO MAKE IT POSITIVE.
-
-
- ╞UNCTION ╬AME: ┴╠╠╧├
- ╨URPOSE: ┴LLOCATE A BLOCK ON THE DISK.
- ├ALL ADDRESS: $├292
- ╔NPUT REQUIREMENTS:
- $08 ╘RACK TO START SCANNING FROM.
- $09 ╙ECTOR TO START SCANNING FROM.
- $8200-$82╞╞ ╘RACK 18 SECTOR 0, ┬┴═.
- $849├ ╙KEW FACTOR (DEFAULT IS 8).
- ╧UTPUT:
- $08 ╬EW TRACK NUMBER.
- $09 ╬EW SECTOR NUMBER.
- ┼RRORS: ╙EE APPENDIX ╔.
-
- ─ESCRIPTION: ╘HIS ROUTINE EXPECTS THAT THE ┬┴═ IS ALREADY IN
- MEMORY. ╔T SCANS THE ┬┴═ STARTING AT A SPECIFIED LOCATION,
- LOOKING FOR A FREE SECTOR. ╔F ONE IS FOUND IT IS RETURNED,
- OTHERWISE AN ERROR RESULTS. ╘HE SECTOR IS ALLOCATED IN THE ┬┴═,
- AND THE ┬┴═ MUST BE UPDATED TO DISK AFTERWARDS IN ORDER FOR THE
- SECTOR TO REMAIN ALLOCATED.
-
-
- ╞UNCTION ╬AME: ┴╨╨┼╬─
- ╨URPOSE: ┴PPEND A NEW CHAIN IN A ╓╠╔╥ FILE.
- ├ALL ADDRESS: $├289
- ╔NPUT REQUIREMENTS:
- $8496 ├URRENT CHAIN NUMBER.
- ╧UTPUT:
- $8496 ╔NCREMENTED BY 1.
- $8497 ╔NCREMENTED BY 1.
- ╨REPARATORY ROUTINES: ╓╧╨┼╬
- ┼RRORS: ╙EE APPENDIX ╔.
-
- ─ESCRIPTION: ┴ HOLE IS OPENED UP IN THE ╓╠╔╥ SECTOR IMMEDIATELY
- FOLLOWING THE CURRENT CHAIN. ╘HE HOLE IS FILLED WITH $00,$╞╞.
- ╘HIS REPRESENTS A NULL CHAIN. ╘HIS HOLE BECOMES THE CURRENT
- CHAIN.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-10
-
-
- ╞UNCTION ╬AME: ┬┴╙╔├
- ╨URPOSE: ╥ESTART ┬┴╙╔├ WITH OPTIONAL PROGRAM LOAD.
- ├ALL ADDRESS: $├241
- ╔NPUT REQUIREMENTS:
- $02-$03 ╨OINTER TO 40 CHARACTERS OF TEXT.
- $0├-$0─ ╨OINTER TO FILE'S DIRECTORY ENTRY.
- $10-$11 ╠OAD ADDRESS.
- ╨REPARATORY ROUTINES: ╠╧╧╦╒╨
-
- ─ESCRIPTION: ╘HE 40 CHARACTERS POINTED TO BY $02-$03 ARE SAVED IN
- A BUFFER. ╔F $0├-$0─ IS NON-ZERO, THE FILE IS LOADED INTO MEMORY
- AT THE ADDRESS SPECIFIED BY $10-$11. ┬┴╙╔├ IS RESTARTED WITH AN
- INTERRUPT VECTOR. ╘HIS INTERRUPT IS SET UP TO GIVE ┬┴╙╔├ A CHANCE
- TO START UP. ┴FTER THE TIME HAS ELAPSED, THE 40 CHARACTERS IN THE
- BUFFER ARE COPIED TO THE SCREEN AND A ├╥ IS PLACED IN THE
- KEYBOARD BUFFER. ╘HE INTERRUPT VECTOR IS THEN REMOVED, BUT THE
- ╬═╔ VECTOR IS SET UP TO REBOOT ╟┼╧╙. ╘HE REBOOT CODE IS AT $├000-
- $├037.
-
-
- ╞UNCTION ╬AME: ┬╠╦├═╨
- ╨URPOSE: ├OMPARES TWO BLOCKS OF MEMORY FOR A FIXED LENGTH.
- ├ALL ADDRESS: $├26┼
- ╔NPUT REQUIREMENTS:
- ┴ ┬YTE COUNT.
- ╪ ┴DDRESS OF ZERO PAGE SOURCE POINTER.
- ┘ ┴DDRESS OF ZERO PAGE DESTINATION POINTER.
- ╧UTPUT:
- ┌ FLAG ╙ET ACCORDINGLY.
-
- ─ESCRIPTION: ╘HE ╪ AND ┘ REGISTERS POINT TO ZERO PAGE POINTERS. ┴
- HAS THE NUMBER OF BYTES TO BE COMPARED (1-255). ╔F ┴ IS ZERO,
- THIS ROUTINE WILL COMPARE UP TO AND INCLUDING A ZERO BYTE. ╘HE ┌
- FLAG IS SET ACCORDINGLY. ╙EE ╙╘╥├═╨.
-
-
- ╞UNCTION ╬AME: ┬╠╦╞╔╠
- ╨URPOSE: ╞ILLS A MEMORY REGION WITH A SPECIFIED BYTE.
- ├ALL ADDRESS: $├17┬
- ╔NPUT REQUIREMENTS:
- $02-$03 ╘HE LENGTH OF THE REGION.
- $04-$05 ╘HE ADDRESS OF THE REGION.
- $06 ╘HE BYTE TO FILL THE REGION WITH.
-
- ─ESCRIPTION: ┴ SIMPLE LOOP FILLS MEMORY WITH THE SPECIFIED BYTE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-11
-
-
- ╞UNCTION ╬AME: ┬╠╦╞╠2
- ╨URPOSE: ╔DENTICAL TO ┬╠╦╞╔╠, BUT WITH INLINE DATA.
- ├ALL ADDRESS: $├1┬4
-
- ─ESCRIPTION: ╘HIS ROUTINE TAKES THE INLINE DATA AND SETS
- EVERYTHING UP BEFORE CALLING ┬╠╦╞╔╠. ╞OR EXAMPLE:
- ╩╙╥ ┬╠╦╞╠2
- .╫╧╥─ ╠ENGTH OF REGION
- .╫╧╥─ ┴DDRESS OF REGION
- .┬┘╘┼ ┬YTE TO FILL MEMORY WITH
- ├ONTROL RETURNS HERE UPON COMPLETION.
-
-
- ╞UNCTION ╬AME: ┬╠╦═╧╓
- ╨URPOSE: ├OPY A BLOCK OF MEMORY.
- ├ALL ADDRESS: $├268
- ╔NPUT REQUIREMENTS:
- ┴ ┬YTE COUNT.
- ╪ ┴DDRESS OF ZERO PAGE SOURCE POINTER.
- ┘ ┴DDRESS OF ZERO PAGE DESTINATION POINTER.
-
- ─ESCRIPTION: ╘HE ╪ AND ┘ REGISTERS POINT TO ZERO PAGE POINTERS.
- ┴ HAS THE NUMBER OF BYTES TO BE TRANSFERRED (1-255). ╔F ┴ IS
- ZERO, THIS ROUTINE WILL COPY UP TO AND INCLUDING A ZERO BYTE. ╙EE
- ╙╘╥├╨┘.
-
-
- ╞UNCTION ╬AME: ┬╠╦╙┼╘
- ╨URPOSE: ╒SES A TABLE TO SET VARIOUS MEMORY LOCATIONS IN A
- UNIFORM MANNER.
- ├ALL ADDRESS: $├181
- ╔NPUT REQUIREMENTS:
- $02-$03 ┴DDRESS OF A DATA TABLE.
-
- ─ESCRIPTION: ╘HIS ROUTINE ALLOWS MANY MEMORY LOCATIONS TO BE
- SPECIFIED AND SET IN AN ORDERLY MANNER. ╘HE FORMAT OF THE DATA
- TABLE IS AS FOLLOWS:
- #BYTES ─ESCRIPTION
- 2 ┴DDRESS TO STORE VALUES AT.
- 1 # OF VALUES THAT FOLLOW.
- ? ╓ALUES TO BE STORED AT THE DESIGNATED MEMORY
- REGION.
- ... ═ORE DEFINITIONS.
- 2 ┴N ADDRESS OF $0000 ENDS THE TABLE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-12
-
-
- ╞UNCTION ╬AME: ├┬╧╪
- ╨URPOSE: ─RAWS A CLICK BOX ON THE SCREEN.
- ├ALL ADDRESS: $├142
- ╔NPUT REQUIREMENTS:
- $02-$03 ╨OINTER TO THE GRAPHIC DATA.
- $04 ├OLUMN IN CHARACTERS.
- $05 ╘HE ROW IN PIXELS.
- $06 ╘HE WIDTH IN BYTES.
- $07 ╘HE HEIGHT IN PIXELS.
-
- ─ESCRIPTION: ╘HIS ROUTINE DRAWS A CLICK BOX ON THE SCREEN. ┴
- CLICK BOX IS A BOX LIKE ╧K, ╧PEN, ETC. ╘HESE BOXES ARE GENERALLY
- PART OF A WINDOW DESCRIPTION. ╘HE GRAPHIC DATA IS IN A CODED
- FORMAT. ╘HIS FORMAT CONSISTS OF A CODE BYTE FOLLOWED BY 1 OR MORE
- DATA BYTES.
- 1) ├ODE BYTES LESS THAN 128 MEAN THAT THE FOLLOWING BYTE IS
- TO BE REPEATED THAT MANY TIMES.
- 2) ├ODE BYTES RANGING FROM 128 TO 219 MEAN THAT IF 128 IS
- SUBTRACTED FROM THE CODE BYTE, THEN THE RESULT IS THE
- NUMBER OF DATA BYTES THAT FOLLOW.
- 3) ├ODE BYTES RANGING FROM 220 TO 225 ARE SPECIAL. ╞IRST 219
- IS SUBTRACTED FROM THE CODE BYTE, THE RESULT IS THE
- NUMBER OF BYTES IN THE PATTERN. ╞OLLOWING THIS CODE BYTE
- IS A REPETITION COUNT FOR THE PATTERN. ╞OLLOWING THIS ARE
- THE BYTES THAT CONSTITUTE THE PATTERN. ╘HESE COULD
- INCLUDE EITHER OF THE PREVIOUS TWO CODE TYPES.
-
-
- ╞UNCTION ╬AME: ├┬╧╪2
- ╨URPOSE: ╔DENTICAL TO ├┬╧╪, BUT WITH INLINE DATA.
- ├ALL ADDRESS: $├1┴┬
-
- ─ESCRIPTION: ╘HIS ROUTINE TAKES A CLICK BOX DESCRIPTOR FROM
- INLINE DATA AND DRAWS IT. ╘HE INLINE DATA DOES ╬╧╘ INCLUDE THE
- PROCESSING VECTOR, IE.
- ╩╙╥ ─╥╫├┬2
- .╫╧╥─ ADDRESS OF GRAPHIC IMAGE
- .┬┘╘┼ START COLUMN IN BYTES
- .┬┘╘┼ START MARGIN IN PIXELS
- .┬┘╘┼ WIDTH OF BOX IN BYTES
- .┬┘╘┼ HEIGHT OF BOX IN PIXELS
- ├ONTROL RETURNS HERE AFTER THE BOX IS DRAWN.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-13
-
-
- ╞UNCTION ╬AME: ├┬╧╪┼╙
- ╨URPOSE: ─RAWS ALL OF THE CLICK BOXES IN A TABLE.
- ├ALL ADDRESS: $├15┴
- ╔NPUT REQUIREMENTS:
- $02-$03 ╨OINTER TO A CLICK BOX TABLE (╒SUALLY $880├).
- ╨REPARATORY ROUTINES: ╫╔╬─╧╫ (OPTIONAL).
-
- ─ESCRIPTION: ╘HIS ROUTINE DRAWS ALL OF THE CLICK BOXES BY CALLING
- ├┬╧╪ REPEATEDLY UNTIL THE TABLE IS EXHAUSTED. ╘HE ╔╬╔╘═╙ IS
- CALLED TO SET THE MOUSE'S POSITION. ├LICK TABLE FORMAT:
- #BYTES ─ESCRIPTION
- 1 # CLICK BOXES IN TABLE.
- 2 ├OLUMN TO PLACE MOUSE IN (0 WILL PREVENT
- PLACEMENT).
- 1 ╥OW TO PLACE MOUSE IN.
- ╘HIS IS FOLLOWED BY SETS OF 8 BYTES, ONE FOR EACH CLICK BOX.
- 2 ┴DDRESS OF GRAPHIC DATA.
- 1 ├OLUMN POSITION OF BOX IN CHARACTERS.
- 1 ╥OW POSITION OF BOX IN PIXELS.
- 1 ╫IDTH OF BOX IN BYTES.
- 1 ╚EIGHT OF BOX IN PIXELS.
- 2 ┴DDRESS OF ROUTINE TO PROCESS THIS BOX.
-
-
- ╞UNCTION ╬AME: ├╚┴╥╙╘
- ╨URPOSE: ╟ET STATISTICS FOR A CHARACTER.
- ├ALL ADDRESS: $├1┬1
- ╔NPUT REQUIREMENTS:
- ┴ ╘HE CHARACTER.
- ╧UTPUT:
- ┴ ╘HE POSITION OF THE UNDERLINE.
- ┘ ╘HE CHARACTER'S WIDTH.
- ╪ ╘HE CHARACTER'S HEIGHT.
-
- ─ESCRIPTION: ╟IVEN THE ┴╙├╔╔ VALUE OF A CHARACTER, THIS ROUTINE
- COMPUTES AND RETURNS THE HEIGHT AND WIDTH, TAKING THE STYLE INTO
- ACCOUNT. ╘HE # PIXELS ABOVE THE UNDERLINE FOR THE PRESENT FONT IS
- ALSO RETURNED.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-14
-
-
- ╞UNCTION ╬AME: ├╚╟─╥╓
- ╨URPOSE: ├HANGE THE DEVICE NUMBER OF A DRIVE.
- ├ALL ADDRESS: $├2┬├
- ╔NPUT REQUIREMENTS:
- ┴ ╬EW DEVICE NUMBER FOR DRIVE.
- $8489 ├URRENT DRIVE NUMBER.
- ╧UTPUT:
- $┬┴ ╬EW DEVICE NUMBER.
- $8489 ╬EW DEVICE NUMBER.
- $8492-$8495 ┴PPROPRIATE BYTES ARE RESET AND SET.
- ┼RRORS: ╙EE APPENDIX ╔.
-
- ─ESCRIPTION: ╘HE CURRENT DRIVE IS MADE READY, THEN THE NEW DEVICE
- NUMBER IS SENT TO TURBODOS WHICH WILL CHANGE IT. ╘HIS RESULTS IN
- THE DRIVE BEING SET AS THE CURRENT DRIVE BUT WITH A NEW DEVICE
- NUMBER, AND WITH TURBODOS UP AND RUNNING. ╘HE STATUS BYTES AT
- $8492-$8495 ARE CHANGED, THE OLD ONE IS RESET AND THE NEW ONE HAS
- BITS 6 AND 7 SET.
-
-
- ╞UNCTION ╬AME: ├╦═╧╒╙
- ╨URPOSE: ├HECK IF THE MOUSE IS IN A BOX.
- ├ALL ADDRESS: $├2┬3
- ╔NPUT REQUIREMENTS:
- $06 ╘OP MARGIN.
- $07 ┬OTTOM MARGIN.
- $08-$09 ╠EFT MARGIN.
- $0┴-$0┬ ╥IGHT MARGIN.
- ╧UTPUT:
- ┴ $00 - OUTSIDE BOX, $╞╞ - INSIDE BOX.
-
- ─ESCRIPTION: ╘HIS ROUTINE SIMPLY COMPARES THE PRESENT MOUSE
- LOCATION STORED AT LOCATIONS $3┴-$3├ AGAINST THE BOX'S
- BOUNDARIES. ┴ IS SET TO $00 IF THE MOUSE IS OUTSIDE, $╞╞ IF IT IS
- INSIDE.
-
-
- ╞UNCTION ╬AME: ├╠╥╥─┘
- ╨URPOSE: ╘URN OFF TURBODOS.
- ├ALL ADDRESS: $├232
- ╔NPUT REQUIREMENTS:
- $8489 ├URRENT DRIVE NUMBER.
-
- ─ESCRIPTION: ╘URBODOS IS TERMINATED IN THE CURRENT DRIVE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-15
-
-
- ╞UNCTION ╬AME: ├╠╥╙╘╙
- ╨URPOSE: ├LEAR THE DRIVE READY STATUS.
- ├ALL ADDRESS: $├235
- ╔NPUT REQUIREMENTS:
- $8489 ├URRENT DRIVE NUMBER.
- ╧UTPUT:
- ┴PPROPRIATE STATUS BYTE IS RESET.
-
- ─ESCRIPTION: ╘HIS ROUTINE TERMINATES TURBODOS IN THE CURRENT
- DRIVE, AND RESETS THE DRIVE STATUS BYTE AT $8492-$8495.
-
-
- ╞UNCTION ╬AME: ├╠╙═╬╒
- ╨URPOSE: ┬ACKS UP A MENU LEVEL.
- ├ALL ADDRESS: $├190
-
- ─ESCRIPTION: ╘HIS ROUTINE ERASES THE PRESENT MENU, AND POPS BACK
- ONE LEVEL.
-
-
- ╞UNCTION ╬AME: ├╠╙╙┼╥
- ╨URPOSE: ├LOSE OFF SERIAL COMMUNICATION.
- ├ALL ADDRESS: $├25╞
- ┼RRORS: ╙EE APPENDIX ╔.
-
- ─ESCRIPTION: ╘HIS ROUTINE RESETS THE ╔/╧ PORTS AFTER SERIAL
- COMMUNICATION IS COMPLETE. ╘HIS ROUTINE IS CALLED AFTER CALLS TO
- ╥┼┴─2, ╫╥╔╘┼2 OR ├╫╥╔╘┼.
-
-
- ╞UNCTION ╬AME: ├╠╙╫╔╬
- ╨URPOSE: ├LOSE A WINDOW.
- ├ALL ADDRESS: $├2┬╞
- ╧UTPUT:
- $02 ├OMMAND BYTE FROM WINDOW PROCESSOR.
- $851─ ├OMMAND BYTE FROM WINDOW PROCESSOR.
-
- ─ESCRIPTION: ╘HE WINDOW IS ERASED AND THE MEMORY ADDRESSES THAT
- THE WINDOW PROCESSOR SAVED ARE RESTORED. ├ONTROL RETURNS TO THE
- CALLER OF ╫╔╬─╧╫.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-16
-
-
- ╞UNCTION ╬AME: ├═─╘┬╠
- ╨URPOSE: ╙ETS UP A TABLE OF RECURRING TIMED EVENTS.
- ├ALL ADDRESS: $├103
- ╔NPUT REQUIREMENTS:
- ┴ ╘HE NUMBER OF ENTRIES IN THE TABLE.
- $02-$03 ┴ POINTER TO THE TABLE OF COUNTERS AND ROUTINE
- ADDRESSES.
-
- ─ESCRIPTION: ╘HIS ROUTINE COPIES A TABLE OF SUBROUTINE ADDRESSES
- AND COUNTER VALUES INTO ╟┼╧╙'S TABLES AT $872─ AND $8755. ╘HE
- COUNTERS WILL BE DECREMENTED ON EACH CALL TO ╔╥╤╥╘╬. ╫HEN THEY
- REACH ZERO, THEY ARE RESET AND THE ASSOCIATED ROUTINE IS CALLED
- BY THE ╟┼╧╙ MAIN LOOP. ╘HE COMMAND BYTES ARE INITIALLY SET TO
- DISABLE THE COUNTERS. ╙EVERAL CALLS TO ┼╬┴┬╠┼ ARE NEEDED TO START
- THE COUNTERS RUNNING, ONE FOR EACH ENTRY IN THE TABLE. ╘HE TABLE
- CONSISTS OF PAIRS OF WORDS. ╘HE FIRST IS THE ADDRESS OF THE
- SUBROUTINE TO BE EXECUTED EACH TIME THE COUNTER REACHES ZERO AND
- THE SECOND IS THE COUNTER VALUE . ╘HIS APPEARS TO BE THE
- RUDIMENTS OF MULTITASKING ╟┼╧╙. ╘HE TABLE OF COMMAND BYTES AT
- $8719 ARE BIT ORIENTED AND OPERATE ACCORDING TO THE FOLLOWING
- TABLE:
- ┬IT 7 - ╘IMER REACHED ZERO, CALL THE SUBROUTINE.
- ┬IT 6 - ─ISABLE THE EXECUTION OF THE ROUTINE. ╘HIS DOES ╬╧╘
- AFFECT THE COUNTER.
- ┬IT 5 - ╔NITIALLY SET BY ├═─╘┬╠, CAUSES THE COUNTER TO STOP
- RUNNING.
- ┬IT 4 - ╘HOUGH NOT REFERENCED ANYWHERE IN THE ╟┼╧╙ ╦ERNAL,
- THIS BIT ALSO STOPS THE COUNTER. ╘HIS BIT IS ╬╧╘
- TOUCHED BY ANY OF THE ╟┼╧╙ ROUTINES, INCLUDING
- ┼╬┴┬╠┼.
-
-
- ╞UNCTION ╬AME: ├═┼╬╒╙
- ╨URPOSE: ├LOSES ALL MENU LEVELS.
- ├ALL ADDRESS: $├1┬─
- ╨REPARATORY ROUTINES: ═┼╬╒
-
- ─ESCRIPTION: ╘HIS ROUTINE IS NOT THE SAME ┼╥┴═╬╙. ╘HE MENUS ARE
- CLEARED ONE AT A TIME AND THE PREVIOUS LEVELS ARE REPROCESSED IN
- REVERSE ORDER UNTIL ALL MENUS ARE CLOSED.
-
-
- ╞UNCTION ╬AME: ├╧╬╓╥╘
- ╨URPOSE: ├ONVERTS A DISK TO ╟┼╧╙ FORMAT.
- ├ALL ADDRESS: $├1┼┴
- ┼RRORS: ╙EE APPENDIX
-
- ─ESCRIPTION: ╘HIS ROUTINE MODIFIES THE DIRECTORY HEADER TO
- INCLUDE THE ╟┼╧╙ FORMAT MESSAGE. ╔T ALSO ALLOCATES A SECTOR TO BE
- USED FOR THE BORDER FROM ─┼╙╦╘╧╨.
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-17
-
-
- ╞UNCTION ╬AME: ├╧╨┘┬
- ╨URPOSE: ├OPIES A BOX FROM SCREEN 2 TO SCREEN 1.
- ├ALL ADDRESS: $├12─
- ╔NPUT REQUIREMENTS:
- $06 ╘HE TOP MARGIN.
- $07 ╘HE BOTTOM MARGIN.
- $08-$09 ╘HE LEFT MARGIN.
- $0┴-$0┬ ╘HE RIGHT MARGIN.
-
- ─ESCRIPTION: ╘HIS ROUTINE COPIES A BOX FROM SCREEN 2 ($6000) TO
- SCREEN 1 ($┴000). ╠OCATION $2╞ IS UNAFFECTED. ╘HIS ROUTINE CALLS
- ├╧╨┘╠ REPEATEDLY TO COPY EACH LINE OF THE BOX.
-
-
- ╞UNCTION ╬AME: ├╧╨┘┬2
- ╨URPOSE: ╔DENTICAL TO ├╧╨┘┬, BUT WITH INLINE DATA.
- ├ALL ADDRESS: $├1┴5
-
- ─ESCRIPTION: ╘HIS ROUTINE COPIES A BOX FROM SCREEN 2 ($6000) TO
- SCREEN 1 ($┴000). ╘HE BOX DESCRIPTOR IS INLINE WITH THE CALLING
- CODE. ╙EE ╨╞╔╠╠2 FOR AN EXAMPLE.
-
-
- ╞UNCTION ╬AME: ├╧╨┘┬3
- ╨URPOSE: ├OPIES A BOX FROM SCREEN 2 TO SCREEN 1.
- ├ALL ADDRESS: $├250
- ╔NPUT REQUIREMENTS:
- $06 ╘HE TOP MARGIN.
- $07 ╘HE BOTTOM MARGIN.
- $08-$09 ╘HE LEFT MARGIN.
- $0┴-$0┬ ╘HE RIGHT MARGIN.
-
- ─ESCRIPTION: ╘HIS ROUTINE COPIES A BOX FROM SCREEN 1 ($┴000) TO
- SCREEN 2 ($6000). ╠OCATION $2╞ IS UNAFFECTED. ╘HIS ROUTINE CALLS
- ├╧╨┘╠ REPEATEDLY TO COPY EACH LINE OF THE BOX.
-
-
- ╞UNCTION ╬AME: ├╧╨┘┬4
- ╨URPOSE: ╔DENTICAL TO ├╧╨┘┬3, BUT WITH INLINE DATA.
- ├ALL ADDRESS: $├253
-
- ─ESCRIPTION: ╘HIS ROUTINE COPIES A BOX FROM SCREEN 1 ($┴000) TO
- SCREEN 2 ($6000). ╘HE BOX DESCRIPTOR IS INLINE WITH THE CALLING
- CODE. ╙EE ╨╞╔╠╠2 FOR AN EXAMPLE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-18
-
-
- ╞UNCTION ╬AME: ├╧╨┘╠
- ╨URPOSE: ├OPIES A HORIZONAL LINE FROM SCREEN 2 TO SCREEN 1.
- ├ALL ADDRESS: $├11┼
- ╔NPUT REQUIREMENTS:
- $08-$09 ╘HE LEFT MARGIN.
- $0┴-$0┬ ╘HE RIGHT MARGIN.
- $18 ╘HE ROW NUMBER.
-
- ─ESCRIPTION: ╘HIS ROUTINE COPIES A HORIZONTAL LINE FROM SCREEN 2
- ($6000) TO SCREEN 1 ($┴000). ╠OCATION $2╞ IS UNAFFECTED.
-
-
- ╞UNCTION ╬AME: ├╧╨┘╙╨
- ╨URPOSE: ├OPIES A SPRITE INTO ╟┼╧╙'S STORAGE AREA.
- ├ALL ADDRESS: $├1├6
- ╔NPUT REQUIREMENTS:
- $08 ╘HE SPRITE NUMBER (0-7).
- $0┴-$0┬ ╨OINTER TO THE SPRITE DATA.
-
- ─ESCRIPTION: ╘HIS ROUTINE SIMPLY COPIES 63 BYTES OF DATA POINTED
- TO BY $0┴-$0┬ TO THE SPECIFIED SPRITE BLOCK. ╟┼╧╙ USES SPRITE
- BLOCKS 40 TO 47.
-
-
- ╞UNCTION ╬AME: ├╒╥╙╧╞
- ╨URPOSE: ╘URN OFF TEXT CURSOR.
- ├ALL ADDRESS: $├29┼
- ╧UTPUT:
- $84┬4 ┬IT 6 IS CLEARED.
- ╨REPARATORY ROUTINES: ├╒╥╙╧╬
-
- ─ESCRIPTION: ╙PRITE 1 (╟┼╧╙'S TEXT CURSOR) IS TURNED OFF, BIT 6
- OF LOCATION $84┬4 IS RESET. ╘HE BLINK RATE IS SET TO 60 (ONCE PER
- SECOND).
-
-
- ╞UNCTION ╬AME: ├╒╥╙╧╬
- ╨URPOSE: ╘URN ON TEXT CURSOR.
- ├ALL ADDRESS: $├29┬
- ╔NPUT REQUIREMENTS:
- $84┬┼-$84┬╞ ├OLUMN TO PLACE CURSOR IN.
- $84├0 ╥OW TO PLACE CURSOR ON.
- ╧UTPUT:
- $84┬4 ┬IT 6 IS SET.
-
- ─ESCRIPTION: ╘URNS ON SPRITE 1 AND POSITIONS IT. ╔T ALSO SETS BIT
- 6 OF LOCATION $84┬4. ╘HE BLINK RATE IS SET TO 60, ONCE PER
- SECOND. ╙PRITE 1 IS THE TEXT CURSOR FOR ╟┼╧╙.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-19
-
-
- ╞UNCTION ╬AME: ├╫╔─╘╚
- ╨URPOSE: ╥ETURNS THE WIDTH OF A CHARACTER.
- ├ALL ADDRESS: $├1├9
- ╔NPUT REQUIREMENTS:
- ┴ ╘HE ┴╙├╔╔ VALUE OF THE CHARACTER.
- ╧UTPUT:
- ┴ ╘HE WIDTH OF THE CHARACTER.
-
- ─ESCRIPTION: ╘HIS ROUTINE SIMPLY TAKES THE DIFFERENCE OF THE BIT
- STREAM INDICES TO GET THE CHARACTERS WIDTH. ╘HE DELETE CHARACTER
- HAS ITS WIDTH LOADED FROM $8807. ╘HIS ROUTINE IS CALLED BY
- ├╚┴╥╙╘.
-
-
- ╞UNCTION ╬AME: ├╫╥╔╘┼
- ╨URPOSE: ├ONDITIONALLY WRITE A SECTOR TO DISK.
- ├ALL ADDRESS: $├223
- ╔NPUT REQUIREMENTS:
- $04 ╘RACK NUMBER.
- $05 ╙ECTOR NUMBER.
- $0┴-$0┬ ╨OINTER TO DATA BUFFER.
- ╨REPARATORY ROUTINES: ─╙┼╘╒╨
- ┼RRORS: ╙EE APPENDIX ╔.
-
- ─ESCRIPTION: ╘HE FIRST THING THIS ROUTINE DOES IS TRY TO READ THE
- DESIRED SECTOR. ╔F THE READ SUCCEEDS, NOTHING HAPPENS. ╘HREE
- ATTEMPTS ARE MADE AT THE READ. ┴FTER THESE READ ATTEMPTS, THE
- SECTOR IS WRITTEN TO THE DISK, BY CALLING ╫╥╔╘┼2. ╔F THE WRITE
- SUCCEEDED WITHOUT ANY ERRORS, THEN THE ROUTINE RESTARTS ITSELF.
- ╔T WILL MAKE FIVE ATTEMPTS AT THIS LOOP. ╔F AFTER FIVE ATTEMPTS,
- THE SECTOR CAN NOT BE READ RELIABLY, AN ERROR 39 RESULTS. ╘HIS
- ROUTINE IS USUALLY CALLED AFTER THE SECTOR HAS BEEN WRITTEN OUT
- WITH A CALL TO ╫╥╔╘┼2. ╫╥╔╘┼ CALLS THIS ROUTINE TO VERIFY THE
- SECTOR.
-
-
- ╞UNCTION ╬AME: ─┼├16
- ╨URPOSE: ─ECREMENTS A 16 BIT VALUE.
- ├ALL ADDRESS: $├175
- ╔NPUT REQUIREMENTS:
- ╪ ╘HE ADDRESS OF THE 16 BIT INTEGER.
- ╧UTPUT:
- ╪ ╘HE ADDRESS OF THE 16 BIT RESULT.
-
- ─ESCRIPTION: ╘HIS ROUTINE IS ONE OF THE ╟┼╧╙ MATH ROUTINES. ╪
- POINTS TO A 16 BIT VALUE WHICH IS DECREMENTED BY 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-20
-
-
- ╞UNCTION ╬AME: ─┼├╧─┼
- ╨URPOSE: ├OMPUTE A CHECKSUM FOR A DATA REGION.
- ├ALL ADDRESS: $├20┼
- ╔NPUT REQUIREMENTS:
- $02-$03 ╨OINTER TO DATA REGION.
- $04-$05 ╠ENGTH OF REGION.
- ╧UTPUT:
- $06-$07 ├HECKSUM OF REGION.
-
- ─ESCRIPTION: ╘HIS ROUTINE IS CALLED BY THE BOOTUP ROUTINES TO
- COMPUTE THE CHECKSUM OF ╟┼╧╙ ┬╧╧╘. ╘HIS CHECKSUM IS USED TO
- CREATE THE INTERRUPT VECTOR ADDRESS. ╘HE REASON FOR THIS WAS TO
- PREVENT PIRACY. ╘HIS CAN BE USED TO CHECK THE INTEGRITY OF A
- MEMORY REGION. ╘HIS IS ACTUALLY MORE OF A ├╥├ COMPUTATION THEN A
- CHECKSUM AND THE FORMULA IS A LITTLE TOO COMPLEX TO EXPLAIN HERE.
-
-
- ╞UNCTION ╬AME: ─┼╠┴┘
- ╨URPOSE: ╙ETS UP A TIME DELAY.
- ├ALL ADDRESS: $├199
- ╔NPUT REQUIREMENTS:
- $02-$03 ┴MOUNT OF TIME DELAY VALUE IN 60THS OF A SECOND.
-
- ─ESCRIPTION: ╘HE COUNTER IS SAVED ON A STACK, AS WELL AS THE
- RETURN ADDRESS OF THE CALLER. ├ONTROL IS PASSED BACK A LEVEL
- HIGHER THAN THE CALLER. ╫HEN THE TIMER RUNS OUT, CONTROL WILL
- RETURN WHERE IT LEFT OFF. ╘HIS ALLOWS PROGRAMS TO INCORPORATE
- DELAYS WITHOUT HALTING ╟┼╧╙'S MANY INDEPENDANT PROCESSES. ╘HIS
- AND ├═─╘┬╠ APPEAR TO BE THE BEGINNINGS OF MULTITASKING FOR ╟┼╧╙.
-
-
- ╞UNCTION ╬AME: ─┼╠┼╘2
- ╨URPOSE: ─ELETE A TEMPORARY FILE.
- ├ALL ADDRESS: $├244
- ╔NPUT REQUIREMENTS:
- $08-$09 ╨OINTER TO TABLE OF TRACKS AND SECTORS.
- $0┼-$0╞ ╨OINTER TO FILE NAME.
- ┼RRORS: ╙EE APPENDIX ╔.
-
- ─ESCRIPTION: ╘HIS ROUTINE REMOVES THE FILE FROM THE DIRECTORY. ╔T
- USES THE TABLE OF TRACKS AND SECTORS TO FREE UP THE SECTORS USED
- BY THE FILE. ╘HIS ROUTINE IS USED TO CLEAN UP A TEMPORARY FILE
- THAT WAS NOT COMPLETED.
-
-
- ╞UNCTION ╬AME: ─┼╠┼╘┼
- ╨URPOSE: ─ELETE A FILE FROM THE DISK.
- ├ALL ADDRESS: $├238
- ╔NPUT REQUIREMENTS:
- $02-$03 ╨OINTER TO FILE NAME.
- ┼RRORS: ╙EE APPENDIX ╔.
-
- ─ESCRIPTION: ╘HE SPECIFIED FILE IS DELETED FROM THE CURRENT
- DRIVE.
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-21
-
-
- ╞UNCTION ╬AME: ─╔╥─╙╦
- ╨URPOSE: ├REATES A DIRECTORY ENTRY ON THE DISK.
- ├ALL ADDRESS: $├1╞0
- ╔NPUT REQUIREMENTS:
- $14-$15 $8100, REQUIRED.
- $16 # OF DIRECTORY SECTORS TO SKIP FIRST.
- $8100-$81╞╞ ╔NFORMATION SECTOR FOR FILE.
- $8300- ╘RACK AND SECTOR LIST FOR FILE.
- ╧UTPUTS:
- $8400-$841─ ─IRECTORY ENTRY.
- ─IRECTORY ENTRY IS WRITTEN TO THE DISK.
- ╨REPARATORY ROUTINES: ╞┴╠╠╧├
- ┼RRORS: ╙EE APPENDIX
-
- ─ESCRIPTION: ╘HIS ROUTINE IS USED BY ╙┴╓┼ AND CALLS ─╔╥═┼═.
- ┬ECAUSE OF THIS, ASSUMPTIONS ARE MADE. ╘HE FIRST IS THAT THE
- INFORMATION SECTOR IS AT $8100-$81╞╞ AND THAT $14-$15 POINT
- THERE. ╘HE FIRST TWO BYTES OF THE INFORMATION SECTOR ARE THE
- ADDRESS OF THE FILENAME. ╘HESE ARE RESET BY THIS ROUTINE TO $00,
- $╞╞. ┴NOTHER ASSUMPTION MADE BY THIS ROUTINE IS THAT $8300 IS A
- LIST OF USEABLE TRACKS AND SECTORS; SPECIFICALLY, $8300-$8301 ARE
- THE TRACK AND SECTOR FOR THE INFORMATION SECTOR AND $8302-$8303
- ARE THE TRACK AND SECTOR OF THE FIRST SECTOR OF THE FILE.
-
-
- ╞UNCTION ╬AME: ─╔╥═┼═
- ╨URPOSE: ├REATE A DIRECTORY ENTRY IN MEMORY.
- ├ALL ADDRESS: $├1╞3
- ╔NPUT REQUIREMENTS:
- $14-$15 $8100, REQUIRED.
- $8100-$81╞╞ ╔NFORMATION SECTOR FOR FILE.
- $8300- ╘RACK AND SECTOR LIST FOR FILE.
- ╧UTPUTS:
- $8400-$841─ ─IRECTORY ENTRY.
- ╨REPARATORY ROUTINES: ╞┴╠╠╧├
- ┼RRORS: ╙EE APPENDIX
-
- ─ESCRIPTION: ╙EE ─╔╥─╙╦ FOR A COMPLETE LIST OF ALL THE
- ASSUMPTIONS MADE BY THIS ROUTINE.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ╟┼╧╙ ╦ERNAL ╥OUTINES 1-22
-
-
- ╞UNCTION ╬AME: ─╥┴╫
- ╨URPOSE: ─RAW A SECTION OF A CODED GRAPHIC IMAGE.
- ├ALL ADDRESS: $├2┴┴
- ╔NPUT REQUIREMENTS:
- $02-$03 ╨OINTER TO GRAPHIC IMAGE DATA.
- $04 ├OLUMN TO START ON, IN BYTES.
- $05 ╥OW TO START DRAWING THE IMAGE ON.
- $06 ╔MAGE WIDTH IN BYTES.
- $07 ╔MAGE HEIGHT IN PIXELS
- $18 # BYTES TO SKIP ON THE LEFT SIDE.
- $19 # BYTES ON THE RIGHT SIDE.
- $1┴-$1┬ # ROWS TO SKIP DOWN.
-
- ─ESCRIPTION: ╘HE CODING OF THE IMAGE IS THE SAME AS THAT OF THE
- CLICK BOXES, SEE ├┬╧╪ FOR MORE INFORMATION. ╘HIS ROUTINE SEEMS TO
- BE FOR DRAWING PIECES OF ╨HOTO ╙CRAPS. ╨HOTO ╙CRAPS HAVE THIS
- CODED FORMAT. ╘HE PARAMETERS FOR THIS ROUTINE ALLOW A SECTION OF
- THE IMAGE TO BE DRAWN BY SPECIFYING HOW MANY ROWS TO SKIP DOWN,AS
- WELL AS HOW MANY BYTES TO SKIP ON THE LEFT AND THE RIGHT OF THE
- DESIRED SECTION. ╘HIS IS NOT USED BY ╟┼╧PAINT UNLESS ╟┼╧PAINT
- CONVERTS ITS FILES BECAUSE THEY ARE IN A DIFFERENT FORMAT;
- HOWEVER, ╨HOTO ╙CRAPS ARE IN THIS FORMAT.
-
-
- ╞UNCTION ╬AME: ─╥┴╫2
- ╨URPOSE: ─RAW A SECTION OF A CODED GRAPHIC IMAGE.
- ├ALL ADDRESS: $├2├5
- ╔NPUT REQUIREMENTS:
- $02-$03 ╨OINTER TO GRAPHIC IMAGE DATA.
- $04 ├OLUMN TO START ON, IN BYTES.
- $05 ╥OW TO START DRAWING THE IMAGE ON.
- $06 ╔MAGE WIDTH IN BYTES.
- $07 ╔MAGE HEIGHT IN PIXELS
- $18 # BYTES TO SKIP ON THE LEFT SIDE.
- $19 # BYTES ON THE RIGHT SIDE.
- $1┴-$1┬ # ROWS TO SKIP DOWN.
- $1├-$1─ ╞IRST USER VECTOR.
- $1┼-$1╞ ╙ECOND USER VECTOR.
-
- ─ESCRIPTION: ╘HIS ROUTINE IS IDENTICAL TO ─╥┴╫, EXCEPT THAT
- BEFORE EACH BYTE IS READ, THE FIRST USER ROUTINE IS CALLED. ╘HE
- SECOND USER ROUTINE IS CALLED BEFORE READING EACH BYTE THAT IS
- NOT PART OF A PATTERN (├OMMAND BYTES GREATER THAN 219). ╘HESE
- USER ROUTINES MIGHT BE FOR DISK READING, IN ORDER TO DRAW AN
- IMAGE THAT IS NOT MEMORY RESIDENT.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-